// 导航守卫：防止从别的页面进入，让它一进来就要跳到登录页，
// 如果登录了就放行，没有就要登录
import router from "@/router";
import store from "./store";
import { Message } from 'element-ui'
router.beforeEach(async(to,from,next)=>{
  // 主动处理token失效
  // const maxTime = 2000
  // const time = localStorage.getItem('time')
  // const now = Date.now()
  // if (time && now - time > maxTime) {
  //   // console.log('跳转页面时间', now)
  //   // console.log('登录时间', time)
  //   // console.log('间隔时间', now - time)
  //   // 当前时间减去登录时间已经超过定好的范围
  //   // 马上退出(记得把上次登录时间也给清理)
  //   localStorage.removeItem('time')
  //   Message.error('超时(主动), 请重新登入')
  //   store.commit('user/logout')
  //   next('/login')
  // }
    // 
    const token=store.state.user.token;
  if(token){
      
  if(to.path==='/login'){
    // 已登录  登录后从网址打开首页->放行
     next('/')
  }else{
    // 登录以后进入登录以外的页面    放行
    // 防止死循环：没有登录一直在循环在登录页(本来要去登录页的话应该放行)，要再次判断
const username=store.state.user.userInfo.username
if(!username){
  
  await store.dispatch('user/getUserInfo')
}
   next()
  }

}else{
    // 未登录跳到登录页
    // 如果你本来就是去登录页, 应该放行
    // 否则才跳到登录页
    // if (to.path === '/login' || to.path === '/404' || to.path === '/testpage') {
    // 上面 or 写法有点复杂, 可以用白名单思路实现, 如果找得到下标, 那么就是数组中字符串其中一个
   const pathArray=['/login','/404','/testpage']
   if(pathArray.indexOf(to.path)!==-1){
    next()
   }else{
    next('/login')
   }
}
   
  })

// 搞完要在应用的cookie把token删了
